package br.com.ac.fatureweb.model.vo;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;

import br.com.ac.fatureweb.enums.Status;
import br.com.ac.fatureweb.integration.enums.EnumStatus;
import br.com.ac.fatureweb.service.NgcMonitoramentoBean;

public class MonitoramentoVO implements Serializable {

	private static final long serialVersionUID = 5590092193199284263L;

	/*
	 * Campos do filtro de consulta
	 */
	private Long idCarga;

	private Long competencia;

	private Long codLeiturista;
	
	private Integer numRoteiro;

	private Status situacaoRoteiro;

	/*
	 * Informações do marcador
	 */
	private Double longitude;

	private Double latitude;
	
	private String dataGeracao;
	
	private String dataCarga;
	
	private String dataRetorno;
	
	private String dataFaturamento;
	
	private Integer qtdImovel;
	
	private Long qtdImovelRetornado;
	
	private String imei;
	
	private String chip;
	
	private String numero;

	private EnumStatus statusEquipamento;
	
	private String nomeLeiturista;
	
	private String cpfLeiturista;

	private EnumStatus statusLeiturista;
	
	
	/**
	 * Padrão
	 */
	public MonitoramentoVO() {
		super();
	}

	/**
	 * {@link NgcMonitoramentoBean#consultarMonitoramento(MonitoramentoVO)}
	 * 
	 * @param idCarga
	 * @param competencia
	 * @param codLeiturista
	 * @param numRoteiro
	 * @param situacaoRoteiro
	 * @param longitude
	 * @param latitude
	 * @param dataGeracao
	 * @param dataCarga
	 * @param dataRetorno
	 * @param dataFaturamento
	 * @param qtdImovel
	 * @param qtdImovelRetornado
	 * @param imei
	 * @param chip
	 * @param numero
	 * @param statusEquipamento
	 * @param nomeLeiturista
	 * @param cpfLeiturista
	 * @param statusLeiturista
	 */
	public MonitoramentoVO(Double longitude, Double latitude, Long qtdImovelRetornado,
			Long idCarga, Integer numRoteiro, Long competencia, Date dataGeracao, Date dataCarga,
			Date dataRetorno, Date dataFaturamento, Integer qtdImovel, Status situacaoRoteiro, 
			String imei, String chip, String numero, EnumStatus statusEquipamento, 
			Long codLeiturista,	String nomeLeiturista, String cpfLeiturista, EnumStatus statusLeiturista) {
		super();
		this.idCarga = idCarga;
		this.competencia = competencia;
		this.codLeiturista = codLeiturista;
		this.numRoteiro = numRoteiro;
		this.situacaoRoteiro = situacaoRoteiro;
		this.longitude = longitude;
		this.latitude = latitude;
		this.qtdImovel = qtdImovel;
		this.qtdImovelRetornado = qtdImovelRetornado;
		this.imei = imei;
		this.chip = chip;
		this.numero = numero;
		this.statusEquipamento = statusEquipamento;
		this.nomeLeiturista = nomeLeiturista;
		this.cpfLeiturista = cpfLeiturista;
		this.statusLeiturista = statusLeiturista;

		this.dataGeracao = dataGeracao != null ? new SimpleDateFormat(
				"dd/MM/yyyy").format(dataGeracao) : "__/__/____";
				
		this.dataCarga = dataCarga != null ? new SimpleDateFormat(
				"dd/MM/yyyy").format(dataCarga) : "__/__/____";
				
		this.dataRetorno = dataRetorno != null ? new SimpleDateFormat(
				"dd/MM/yyyy").format(dataRetorno) : "__/__/____";
				
		this.dataFaturamento = dataFaturamento != null ? new SimpleDateFormat(
				"dd/MM/yyyy").format(dataFaturamento) : "__/__/____";
	}

	/**
	 * @return the idCarga
	 */
	public Long getIdCarga() {
		return idCarga;
	}

	/**
	 * @param idCarga the idCarga to set
	 */
	public void setIdCarga(Long idCarga) {
		this.idCarga = idCarga;
	}

	/**
	 * @return the competencia
	 */
	public Long getCompetencia() {
		return competencia;
	}

	/**
	 * @param competencia the competencia to set
	 */
	public void setCompetencia(Long competencia) {
		this.competencia = competencia;
	}

	/**
	 * @return the codLeiturista
	 */
	public Long getCodLeiturista() {
		return codLeiturista;
	}

	/**
	 * @param codLeiturista the codLeiturista to set
	 */
	public void setCodLeiturista(Long codLeiturista) {
		this.codLeiturista = codLeiturista;
	}

	/**
	 * @return the numRoteiro
	 */
	public Integer getNumRoteiro() {
		return numRoteiro;
	}

	/**
	 * @param numRoteiro the numRoteiro to set
	 */
	public void setNumRoteiro(Integer numRoteiro) {
		this.numRoteiro = numRoteiro;
	}

	/**
	 * @return the situacaoRoteiro
	 */
	public Status getSituacaoRoteiro() {
		return situacaoRoteiro;
	}

	/**
	 * @param situacaoRoteiro the situacaoRoteiro to set
	 */
	public void setSituacaoRoteiro(Status situacaoRoteiro) {
		this.situacaoRoteiro = situacaoRoteiro;
	}

	/**
	 * @return the longitude
	 */
	public Double getLongitude() {
		return longitude;
	}

	/**
	 * @param longitude the longitude to set
	 */
	public void setLongitude(Double longitude) {
		this.longitude = longitude;
	}

	/**
	 * @return the latitude
	 */
	public Double getLatitude() {
		return latitude;
	}

	/**
	 * @param latitude the latitude to set
	 */
	public void setLatitude(Double latitude) {
		this.latitude = latitude;
	}

	

	/**
	 * @return the dataGeracao
	 */
	public String getDataGeracao() {
		return dataGeracao;
	}

	/**
	 * @param dataGeracao the dataGeracao to set
	 */
	public void setDataGeracao(String dataGeracao) {
		this.dataGeracao = dataGeracao;
	}

	/**
	 * @return the dataCarga
	 */
	public String getDataCarga() {
		return dataCarga;
	}

	/**
	 * @param dataCarga the dataCarga to set
	 */
	public void setDataCarga(String dataCarga) {
		this.dataCarga = dataCarga;
	}

	/**
	 * @return the dataRetorno
	 */
	public String getDataRetorno() {
		return dataRetorno;
	}

	/**
	 * @param dataRetorno the dataRetorno to set
	 */
	public void setDataRetorno(String dataRetorno) {
		this.dataRetorno = dataRetorno;
	}

	/**
	 * @return the dataFaturamento
	 */
	public String getDataFaturamento() {
		return dataFaturamento;
	}

	/**
	 * @param dataFaturamento the dataFaturamento to set
	 */
	public void setDataFaturamento(String dataFaturamento) {
		this.dataFaturamento = dataFaturamento;
	}

	/**
	 * @return the qtdImovel
	 */
	public Integer getQtdImovel() {
		return qtdImovel;
	}

	/**
	 * @param qtdImovel the qtdImovel to set
	 */
	public void setQtdImovel(Integer qtdImovel) {
		this.qtdImovel = qtdImovel;
	}

	/**
	 * @return the qtdImovelRetornado
	 */
	public Long getQtdImovelRetornado() {
		return qtdImovelRetornado;
	}

	/**
	 * @param qtdImovelRetornado the qtdImovelRetornado to set
	 */
	public void setQtdImovelRetornado(Long qtdImovelRetornado) {
		this.qtdImovelRetornado = qtdImovelRetornado;
	}

	/**
	 * @return the imei
	 */
	public String getImei() {
		return imei;
	}

	/**
	 * @param imei the imei to set
	 */
	public void setImei(String imei) {
		this.imei = imei;
	}

	/**
	 * @return the chip
	 */
	public String getChip() {
		return chip;
	}

	/**
	 * @param chip the chip to set
	 */
	public void setChip(String chip) {
		this.chip = chip;
	}

	/**
	 * @return the numero
	 */
	public String getNumero() {
		return numero;
	}

	/**
	 * @param numero the numero to set
	 */
	public void setNumero(String numero) {
		this.numero = numero;
	}

	/**
	 * @return the statusEquipamento
	 */
	public EnumStatus getStatusEquipamento() {
		return statusEquipamento;
	}

	/**
	 * @param statusEquipamento the statusEquipamento to set
	 */
	public void setStatusEquipamento(EnumStatus statusEquipamento) {
		this.statusEquipamento = statusEquipamento;
	}

	/**
	 * @return the nomeLeiturista
	 */
	public String getNomeLeiturista() {
		return nomeLeiturista;
	}

	/**
	 * @param nomeLeiturista the nomeLeiturista to set
	 */
	public void setNomeLeiturista(String nomeLeiturista) {
		this.nomeLeiturista = nomeLeiturista;
	}

	/**
	 * @return the cpfLeiturista
	 */
	public String getCpfLeiturista() {
		return cpfLeiturista;
	}

	/**
	 * @param cpfLeiturista the cpfLeiturista to set
	 */
	public void setCpfLeiturista(String cpfLeiturista) {
		this.cpfLeiturista = cpfLeiturista;
	}

	/**
	 * @return the statusLeiturista
	 */
	public EnumStatus getStatusLeiturista() {
		return statusLeiturista;
	}

	/**
	 * @param statusLeiturista the statusLeiturista to set
	 */
	public void setStatusLeiturista(EnumStatus statusLeiturista) {
		this.statusLeiturista = statusLeiturista;
	}
}